package com.zhuojy.equity.mall.admin.common.exception;

import com.zhuojy.equity.mall.admin.common.enums.ErrCdEnum;
import com.zhuojy.equity.mall.admin.common.support.Result;
import lombok.extern.slf4j.Slf4j;

/**
 * 异常处理工具类
 */
@Slf4j
public class ExceptionUtil {

	/**
	 * 防止类被实例化
	 */
	private ExceptionUtil() {
		throw new IllegalAccessError("Utility class");
	}

	/**
	 * 统一异常处理
	 *
	 * @param err 异常
	 *
	 * @return 外部响应对象
	 */
	public static <T> Result<T> dealException(Throwable err) {
		try {
			if (err instanceof BizException) {
				BizException e = (BizException) err;
				return new Result<>(e.getErrCd(), e.getErrMsg());
			}
		} catch (Exception e) {
			log.error("防御性捕捉异常！{}", e);
		}
		log.error("调用接口异常：", err);
		return new Result<>(ErrCdEnum.B001);
	}

}
